package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws Exception {
       /*
            使用JDBC连接数据库的基本过程
            1:加载驱动
            2:使用驱动管理器与数据库建立连接，并获取Connection对象
            3:通过Connection创建执行语句对象Statement
            4:通过执行语句对象执行SQL语句
            5:如果执行的是DQL语句则会得到查询结果集ResultSet
            6:遍历结果集获取查询数据
            7:关闭数据库连接
         */
        //1加载驱动
        //不同数据库提供的驱动类名字不同
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2连接数据库
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        System.out.println("成功连接数据库!");

        //3创建Statement对象
        Statement statement = connection.createStatement();
        /*
         4
         CREATE TABLE userinfo(
              id INT PRIMARY KEY AUTO_INCREMENT,
              username VARCHAR(30),
              password VARCHAR(30),
              nickname VARCHAR(30),
              age INT(3)
          )

        * */
        //4
        String sql = "CREATE TABLE userinfo(" +
                     "  id INT PRIMARY KEY AUTO_INCREMENT, " +
                     "  username VARCHAR(30), " +
                     "  password VARCHAR(30), " +
                     "  nickname VARCHAR(30), " +
                     "  age INT(3)" +
                     "  )";

        /*
            5
            Statement提供了用于执行SQL语句的方法:
            boolean execute(String sql)
            执行给定的SQL语句，如果执行后存在查询结果集则返回true

            执行DML语句和DQL语句都有专门对应的execute方法，因此该execute一般
            用于执行DDL语句
         */
        statement.execute(sql);
        System.out.println("表创建成功");
        //6关闭与数据库的连接
        connection.close();

    }
}
